Virtual LAN (VLAN) is a technology to subdivide a single physical network connection into multiple independent logical connections. In a VLAN the computers behave as if they are connected to the same wire even though they may actually be physically located on different segments of the physical LAN. VLANs are widely used in packet based telecom networks, for example to separate signaling and media traffic or to separate Operation and Maintenance O&M traffic from payload traffic.
Each VLAN builds, like in case of a usual physical separated network subsystem, its own broadcast domain created by switches. In the VLAN the data packets are switched according to the in the data packets header included tags identifying the assignment of the data packets to a particular VLAN and according to the assignment of the tags to the I/O ports in the switches. After the data packets are transmitted on their respective VLANs through the corporate network, the VLAN tag may be stripped before the data packet is sent.
The method describing the sharing of a physical Ethernet network link by multiple independent logical networks by using the tags is standardized in IEEE 802.1Q, or VLAN Tagging. In IEEE 802.1Q, each Ethernet packet is tagged with a VLAN tag in the 802.1Q header of the data packet to identify uniquely a VLAN for purpose of routing. The 802.1Q header reserves 12 bits for a VLAN tag allowing an allocation of 4094 different VLANs (some values are reserved).
Cloud computing and virtualization are current trends in the field of information technology that are also gaining momentum in neighboring fields such as telecommunication. A primary advantage of cloud computing is the fact that it can almost instantly provide unlimited computing, storage, or networking resources. Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand.
Large public cloud providers, such as Amazon, can provide hundreds or thousands of computers in a matter of minutes to any user in need of cloud computing resources. Computing clouds may also be private, for example, to a company. In a private cloud scenario, the cloud is operated and used by the same company, and virtual resources are only made available inside the company. By their nature, private clouds have a limited capacity and are therefore often combined with public clouds to create so-called hybrid clouds so as to jointly utilize public and private cloud resources.
Today, different computing clouds typically rely on different technologies. That is, there are little established standards regarding, for example, Application Programming Interfaces (APIs), virtualization platforms (so-called hypervisors) or resource description formats (e.g., for Virtual Machines, VMs). Hereby, the platform virtualization is a virtualization of computers or operating systems. It hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform. The software that controls the virtualization is called a hypervisor or virtual machine monitor.
Also, the environments offered by the clouds (e.g., with respect to networking) may differ from cloud provider to cloud provider. Major providers that offer public or private clouds are VMware with their own hypervisor, the vCloud and vSphere APIs and a proprietary format for virtual machines, Amazon with Xen as hypervisor, the EC2 and S3 APIs and their own proprietary AMI format for virtual machines, or Eucalypthus with KVM or Xen as hypervisor, the EC2 and S3 API and the proprietary EMI virtual machine format, to name only three providers.
Hypervisors used in today's Clouds include further the functionality of virtual switches. Multiple virtual machines running on the same hypervisor can be inter-connected or connected to external networks via virtual switches. Even though, most of these hypervisors support VLANs, most Clouds do currently not expose VLAN support, particularly for IEEE 802.1Q VLANs. If there is VLAN support, it is limited to manual management of VLANs, i.e., VLANs need to be assigned manually to different ports on the virtual machines and hypervisors.
However, a key principle of Cloud Computing is to abstract resources and to provide them to users in a self service manner. Additionally the usage of a cloud environment should be transparent to the user, which means that the user should be able to setup an application like using an independent physical environment.
Applying VLAN to the Cloud Computing faces however different problems. In particular, the requirements of Cloud Computing are that a user may request a VLAN with particular properties, wherein the properties may be for example a specific VLAN tag or specific network level QoS parameters. However, VLAN tags need to be unique if requesting a new VLAN in order to route the data packets properly. Thus, in case of implementing VLAN into Cloud Computing it will not be possible to allow users to request their own tags. With only 4094 different tags, there is a high probability that the same tag will be used by two different users.
There are standards like e.g., from IEEE that allow “stacked” VLAN tags, e.g., IEEE 802.11 QinQ. This standard adds another VLAN tag into the IEEE 802.1Q pack-age. This results in 4094*4094 available VLANs. However, this standard does solve the previously described problem only for some applications, namely for those being already implemented for using these kind of data packets. Furthermore, the disadvantage of this standard is that it is not transparent to services running on the virtual machines in the network. The additional VLAN tag increases the size of the Ethernet packet by 4 bytes limiting the number of bytes available to applications. Thus, every virtual machine and every service in these machines needs to be aware of the limited Maximum Transport Unit (MTU) size.